package core

import (
	"fmt"
	"mine-info-server/global"
	"mine-info-server/initialize"
	"time"

	"go.uber.org/zap"
)

type server interface {
	ListenAndServe() error
}

func RunWindowsServer() {
	// 这里不需要集群
	//if global.GVA_CONFIG.System.UseMultipoint {
	//	// 初始化redis服务
	initialize.Redis()
	initialize.InitMsgConsumer()
	//}
	// 初始化redis服务
	//initialize.Redis()

	// 从db加载jwt数据
	//if global.GVA_DB != nil {
	//	system.LoadAll()
	//}

	Router := initialize.Routers()

	Router.Static("/form-generator", "./resource/page")

	address := fmt.Sprintf(":%d", global.GVA_CONFIG.System.Addr)
	s := initServer(address, Router)
	// 保证文本顺序输出
	// In order to ensure that the text order output can be deleted
	time.Sleep(10 * time.Microsecond)
	global.GVA_LOG.Info("server run success on ", zap.String("address", address))

	fmt.Printf(`
	欢迎使用 Gotham
	本项目作者：zy
	如有任何问题，请发邮件到： coderzy@foxmail.com
	默认自动化文档地址:http://127.0.0.1%s/swagger/index.html
	监控系统：http://127.0.0.1%s/debug/statsviz/
`, address, address)
	global.GVA_LOG.Error(s.ListenAndServe().Error())
}
